package com.yunxin.admin.system.application;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yunxin.admin.system.application.command.DictPageCommand;
import com.yunxin.admin.system.application.command.DictTypePageCommand;
import com.yunxin.admin.system.application.dto.*;

import java.util.List;

/**
 * @author zero°
 * @since 2023-07-11
 */
public interface DictQueryService {

    /**
     * 字典数据项分页列表
     *
     * @param command command
     * @return Page<SysDict>
     */
    Page<DictPageDTO> getDictPage(DictPageCommand command);

    /**
     * 字典数据项表单
     *
     * @param id 字典数据项ID
     * @return SysDict
     */
    DictInfoDTO getDictInfoById(Long id);

    /**
     * 获取字典下拉列表
     *
     * @param typeCode String
     * @return List<AdminOptionDTO < String>>
     */
    List<OptionDTO<String>> listDictOptions(String typeCode);

    /**
     * 字典类型分页列表
     *
     * @param command command
     * @return Page<DictTypePageDTO>
     */
    Page<DictTypePageDTO> getDictTypePage(DictTypePageCommand command);


    /**
     * 获取字典类型表单详情
     *
     * @param id 字典类型ID
     * @return SysDictType
     */
    DictTypeInfoDTO getDictTypeById(Long id);

}
